package controle;

import java.util.List;

import modelo.bean.Questao;
import modelo.dao.GenericoDAO;
import modelo.dao.impl.QuestaoDAOImpl;

public class QuestaoControle {
	private Questao questao;
	private List<Questao> listaDeQuestoes;

	private QuestaoDAOImpl questaoDAOImpl;
	private GenericoDAO genericoDAO;

	public QuestaoControle(Questao questao) {
		this.questao = questao;
		DAOdeQuestao();
	}

	private void DAOdeQuestao() {
		if (questao == null) {
			questao= new Questao();
		}
		if (questaoDAOImpl == null) {
			questaoDAOImpl = new QuestaoDAOImpl(questao);
		}
		genericoDAO = questaoDAOImpl;
		genericoDAO.changeSeed(questao);
	}

	public boolean criar() {
		return genericoDAO.criar();
	}

	public Questao find(Long id) {
		questao = (Questao) genericoDAO.recuperar(id);
		return questao;
	}

	@SuppressWarnings("unchecked")
	public List<Questao> listarTodos() {
		return (List<Questao>) genericoDAO.listarTodos();
	}

	public boolean excluir(Long id) {
		questao = (Questao) genericoDAO.recuperar(id);
		return genericoDAO.deletar();
	}

	public boolean alterar(Questao q) {
		questao = q;
		return genericoDAO.editar();
	}

	public Questao getQuestao() {
		return questao;
	}

	public void setQuestao(Questao questao) {
		this.questao = questao;
	}

	public List<Questao> getListaDeQuestoes() {
		return listaDeQuestoes;
	}

	public void setListaDeQuestoes(List<Questao> listaDeQuestoes) {
		this.listaDeQuestoes = listaDeQuestoes;
	}

}
